package van.planifolia.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import van.planifolia.dao.UserDao;
import van.planifolia.pojo.User;
import van.planifolia.service.UserService;

import javax.annotation.Resource;

/**
 * Created by Intellij IDEA<br>
 * Service的实现类
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/11/17 18:25
 */
@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;

    /**
     * 查询全部的实现方法
     * @return 全部的用户信息
     * @param pageIndex 页面索引
     * @param pageSize 页面大小
     */
    @Override
    public PageInfo<User> getAllUserMessage(Integer pageSize, Integer pageIndex) {
        // 设置分页大小以及页码
        PageHelper.startPage(pageIndex, pageSize);
        // 将查询到的信息封装到PageInfo中并且返回
        return new PageInfo<>(userDao.selectAll());
    }

    /**
     * 查询单条用户
     * @param id 用户的id
     * @return 单条用户信息
     */
    @Override
    public User getUserById(Integer id) {
        return userDao.selectUserById(id);
    }

    /**
     * 插入一条用户信息
     * @param user 用户信息
     * @return 受影响的行数
     */
    @Override
    public int addUser(User user) {
        return userDao.insertUser(user);
    }
    /**
     * 根据id删除用户
     * @param id 被删除用户的id
     * @return 受影响的行数
     */
    @Override
    public int deleteUser(Integer id) {
        return userDao.deleteUser(id);
    }
    /**
     * 更新一条用户信息
     * @param user 要更新的用户
     * @return 受影响的行数
     */
    @Override
    public int updateUser(User user) {
        return userDao.updateUser(user);
    }
}
